package com.fowo.api.model.payable;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.excel.ParentIdentification;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 应付单 子表的预览导入辅助模型(全字段为文本类型)
 * @author fowo
 */
@Getter
@Setter
@ParentIdentification({ "supplierName" })
public class PayableAndPayableProductImportPo {

  /** 商品 */
  @ExcelProperty("*商品 - 商品")
  @NotBlank(message = "商品不能为空")
  @Size(max = 500, message = "商品长度不能超过500")
  private String productIdName;

  @ExcelIgnore
  @Schema(title = "*商品 - 商品")
  private String productId;

  /** 商品名称 */
  @ExcelProperty("商品 - 商品名称")
  @Size(max = 500, message = "商品名称长度不能超过500")
  private String name;

  /** SKU */
  @ExcelProperty("商品 - SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 计价数量 */
  @ExcelProperty("商品 - 计价数量")
  @IntegerString(message = "计价数量数值格式不正确", label = "计价数量")
  private String num;

  /** 上一次价格 */
  @ExcelProperty("商品 - 上一次价格")
  @DecimalString(message = "上一次价格小数格式不正确", label = "上一次价格")
  private String lastUnitPrice;

  /** 价格 */
  @ExcelProperty("商品 - 价格")
  @DecimalString(message = "价格小数格式不正确", label = "价格")
  private String price;

  /** 上一次成本价 */
  @ExcelProperty("商品 - 上一次成本价")
  @DecimalString(message = "上一次成本价小数格式不正确", label = "上一次成本价")
  private String lastCostPrice;

  /** 成本价格 */
  @ExcelProperty("商品 - 成本价格")
  @DecimalString(message = "成本价格小数格式不正确", label = "成本价格")
  private String costPrice;

  /** 主材料单价 */
  @ExcelProperty("商品 - 主材料单价")
  @DecimalString(message = "主材料单价小数格式不正确", label = "主材料单价")
  private String mainUnitPrice;

  /** 主材料克重 */
  @ExcelProperty("商品 - 主材料克重")
  @DecimalString(message = "主材料克重小数格式不正确", label = "主材料克重")
  private String gramWeight;

  /** 主材料克重合计 */
  @ExcelProperty("商品 - 主材料克重合计")
  @DecimalString(
    message = "主材料克重合计小数格式不正确",
    label = "主材料克重合计"
  )
  private String gramWeightAmount;

  /** 工费 */
  @ExcelProperty("商品 - 工费")
  @DecimalString(message = "工费小数格式不正确", label = "工费")
  private String laborCosts;

  /** 辅料 */
  @ExcelProperty("商品 - 辅料")
  @DecimalString(message = "辅料小数格式不正确", label = "辅料")
  private String accessoriesPrice;

  /** 含税价格 */
  @ExcelProperty("商品 - 含税价格")
  @DecimalString(message = "含税价格小数格式不正确", label = "含税价格")
  private String priceTax;

  /** 小计 */
  @ExcelProperty("商品 - 小计")
  @DecimalString(message = "小计小数格式不正确", label = "小计")
  private String subtotal;

  /** 备注 */
  @ExcelProperty("商品 - 备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;
}
